1. Field of Use
The present invention relates to an electronic computer provided with independent functional networks or units for simultaneously executing different operations on the same data.
2. Prior Art
It is known that from a logical-functional point of view, electronic computers are made up of functional networks or units which have specific functions.
The functional units which can be identified in the simplest form of the computer are:
A working storage, PA1 A block of working registers, PA1 A logic-arithmetic unit, and PA1 A control unit.
These functional units are connected to each other by means of a data transfer network and by means of a network which is specially designed for the purpose of transmitting commands and which links the control unit to the various functional units indicated above. Additionally, peripheral devices such as printers, card readers/card punchers or strip perforators are generally provided as well. These devices are connected to the computer (particularly to some functional units) under the control of the above named control unit or of an additional specialized control unit.
It is also known that the execution of predetermined operations with suitable data, e.g., operation of arithmetical addition, usually involves the necessity of carrying out a plurality of operations which may be defined as elementary and which require the repeated and successive use of the available resources that is, the various functional units.
For example, the arithmetic operation of adding two data units is carried out by means of a program instruction which specifies the operation to be performed, the address of the storage location which contains the first operand, the length of the operand expressed as the number of storage locations to be addressed, the address of the second operand and the length of the second operand. The execution of the operation which has been specified is preceded by a preparatory or fetching phase in which all this information is loaded into the appropriate working registers and from there controls the actual phase of executing the operation.
The subsequent execution phase, generally, involves the repeated execution of the requested operation with one portion of the data and with each operative step the updating of the information which controls it. Updating means, for example, the increase or decrease of the addresses and of the lengths of the operands.
If the operating unit intended for this function is the logic-arithmetic unit, it is clear that this unit must, successively, operate on the addresses, the lengths, and the actual operand data themselves. This causes a considerable decrease in the speed of operation of the computer. The disadvantage has generally been eliminated by adding to the logical-arithmetical unit other independent functional units, particularly specialized counting networks specifically used for carrying out the updating of the addresses and of the operand lengths.
Consequently, it can be said that a multiplexing of functional networks of the same type has been employed, however for carrying out the same type of operation on different data. In complex computers of considerable capacity, this concept has been extended in order to attain the capability of being able to run more programs concurrently.
Provision has then been made for dividing some functional units into simpler units which can be operated in parallel or alternatively, by effective multiplexing, thereby have made possible the simultaneous execution of more operations of the same type but always on different data fetched by different programs.